const Base = require('./base.js');
const sseManager = require('../lib/sseManager');

module.exports = class extends Base {
  indexAction() {
    // 设置响应头以支持 SSE
    this.header('Content-Type', 'text/event-stream');
    this.header('Cache-Control', 'no-cache');
    this.header('Connection', 'keep-alive');

    let counter = 0;

    // 使用 setInterval 模拟定时发送数据
    const intervalId = setInterval(() => {
      const data = {
        counter: counter++,
        timestamp: new Date().toISOString()
      };

      // 发送数据到客户端
      this.write(`data: ${JSON.stringify(data)}\n\n`);
    }, 1000);

    // 当请求关闭或连接断开时，清除 interval
    this.http.res.on('close', () => {
      clearInterval(intervalId);
      this.http.res.end();
    });

    // // 设置响应头为 SSE
    // this.header('Content-Type', 'text/event-stream');
    // this.header('Cache-Control', 'no-cache');
    // this.header('Connection', 'keep-alive');
    // // 设置响应体为 SSE 格式

    // // console.log(this.res);
    // // this.res.writeHead(200, {
    // //   'Content-Type': 'text/event-stream',
    // //   'Cache-Control': 'no-cache',
    // //   'Connection': 'keep-alive'
    // // });

    // // 添加客户端到 SSE 管理器
    // sseManager.addClient(this.res);
    // this.ctx.res.write({ code: 200 });

    // this.res.on('close', () => {
    //   sseManager.removeClient(this.res);
    //   this.res.end();
    // });
  }
};
